/*******************************************************************************************
 *  FireRef.h
 *
 *  Creating and managing FireRef object structures.
 *
 *******************************************************************************************/







/*******************************************************************************************
 *  INCLUDES :
 *******************************************************************************************/
#include "BulletMLConsts.h"
#include "BulletMLTypes.h"
#include "Fire.h"







/*******************************************************************************************
 *  TYPE definitions :
 *******************************************************************************************/

/*****************************************************/
/* The FIREREF object structure :                 */
/*****************************************************/
#ifndef _FIREREF_STRUCT_
#define _FIREREF_STRUCT_
typedef struct FireRef {

	ObjType		otype;						/* The object's type, as in the ... */
											/* ... BML type enum.               */

	char		*label;						/* The label of the refered fire.   */
	Fire		*fire;						/* Pointer to the refered fire.     */

	int			paramsNum;					/* How many parameters?             */
	
	/* The parameters the refered ... */
	/* ... bullet might need.         */
	char		params[MAX_PARAMS][MAX_EXPRESSION_STR_LEN];

} FireRef;
#endif







/*******************************************************************************************
 *  Function PROTOTYPES :
 *******************************************************************************************/

/* CONSTRUCTOR and DESTRUCTOR : */
FireRef		*newFireRef(void);			/* Creates an empty FireRef object structure. */
void 		freeFireRef(FireRef *f);	/* Destroys an FireRef object structure.      */ 


/* FILLING the FireRef object structure : */
void 		setFireRefLabel(FireRef *f, char *l);
void 		pushFireRefParam(FireRef *f, char *p);
